﻿Public Class cImprimeRecargaLinea
    Private lDsMov As dsMovimiento
    Private lTicket As ImprimeTiket.Ticket
    Private ldrEnca As dsMovimiento.MOV_MOVIMIENTORow
    Private lNogravado As Double
    Private lGravado As Double
    Private lIva As Double
    Private Sub GenerarTitulos()
        Dim Para As cParametrizacion = New cParametrizacion("NOMEMPRE", "EMPRESA")
        lTicket.AddHeaderLine(cGeneral.NToCad(Para.Valor))
        Para = New cParametrizacion("NIT", "EMPRESA")
        lTicket.AddHeaderLine("NIT:" & cGeneral.NToCad(Para.Valor.ToString))
        Para = Nothing
        ldrEnca = lDsMov.MOV_MOVIMIENTO.Rows(0)
        Dim Sede As cSedes = New cSedes(ldrEnca.IDSEDE)
        lTicket.AddHeaderLine(cGeneral.NToCad(Sede.nombre))
        lTicket.AddHeaderLine(cGeneral.NToCad(Sede.direccion))
        lTicket.AddHeaderLine(cGeneral.NToCad(Sede.Ciudad))
        lTicket.AddHeaderLine("Factura de Venta No. " & ldrEnca.IDDOCUMENTO & "-" & ldrEnca.NUMERO.ToString.PadLeft(6, "0"))
        lTicket.AddHeaderLine("REGIMEN COMUN")
        lTicket.AddSubHeaderLine("Fecha-Hora :" & ldrEnca.FECHADOCUMENTO.ToString("dd/MMM/yyyy hh:mm:ss"))
        
    End Sub
    Private Sub GeneraItems()
        lNogravado = 0
        lGravado = 0
        lIva = 0
        For Each drDet As dsMovimiento.MOV_MOVIMIENTODETALLERow In lDsMov.MOV_MOVIMIENTODETALLE.Rows
            Dim Prod As New cProducto(drDet.IDPRODUCTO)
            lTicket.AddItem(drDet.CANTIDAD, Prod.Descripcion, drDet.VALORLINEA.ToString("n0"))
            Dim mIva As cTipoIva = New cTipoIva(drDet.IDIVA)
            If mIva.PorIva = 0 Then
                lNogravado += drDet.VALORBASE
            Else
                lGravado += drDet.VALORBASE
                lIva += drDet.VALORIVA
            End If
        Next
    End Sub
    Private Sub GeneraDetalle()
        lTicket.AddTotal("TOTAL EXCLUIDO :", lNogravado.ToString("n0"))
        lTicket.AddTotal("TOTAL BASE :", lGravado.ToString("n0"))
        lTicket.AddTotal("TOTAL IVA :", lIva.ToString("n0"))
        lTicket.AddTotal("", "")
        lTicket.AddTotal("TOTAL FACTURA :", (lNogravado + lGravado + lIva).ToString("n0"))
        Dim tDoc As cTipoDocumento = New cTipoDocumento(ldrEnca.IDDOCUMENTO)
        Dim cons As cConsecutivo = New cConsecutivo(tDoc.idConsecutivo)
        tDoc = Nothing
        lTicket.AddFooterLine("Resol. POS: " & cons.Numeroresolucion & " de " & cons.Fecharesolucion.ToString("d"))
        lTicket.AddFooterLine("Rango: " & ldrEnca.IDDOCUMENTO & "-" & cons.Numeroinicial & " hasta " & ldrEnca.IDDOCUMENTO & "-" & cons.Numerofinal)
        cons = Nothing
    End Sub
    Public Sub New(ByVal IdDoc As String, ByVal NumeroDoc As Integer, ByVal RutaLogoPeq As String, ByVal PrinterName As String, ByVal ImprimeImagen As Boolean)
        Try
            Dim daEnc As New dsMovimientoTableAdapters.MOV_MOVIMIENTOTableAdapter
            Dim daDet As New dsMovimientoTableAdapters.MOV_MOVIMIENTODETALLETableAdapter
            lDsMov = New dsMovimiento
            daEnc.FillByIdDocumentoNumero(lDsMov.MOV_MOVIMIENTO, IdDoc, NumeroDoc)
            daDet.FillByIdDocumentoNumero(lDsMov.MOV_MOVIMIENTODETALLE, IdDoc, NumeroDoc)
            lTicket = New ImprimeTiket.Ticket
            If ImprimeImagen Then _
                lTicket.HeaderImage = System.Drawing.Image.FromFile(My.Application.Info.DirectoryPath & RutaLogoPeq)
            GenerarTitulos()
            GeneraItems()
            GeneraDetalle()
            lTicket.PrintTicket(PrinterName)
        Catch ex As Exception
            Throw ex
        End Try
    End Sub
End Class
